close all; clc; clear;
I = imread('rice.png');

Roberts = edge(I,'roberts');    %进行Roberts算子边缘检测，门限值采用matlab默认值
Sobel   = edge(I,'sobel');      %进行Sobel算子边缘检测，门限值采用matlab默认值
Prewitt = edge(I,'prewitt');    %进行Prewitt算子边缘检测，门限值采用matlab默认值
Canny   = edge(I,'Canny');      % Canny算子的检测比较优越，它可以减少小模板检测中边缘中断，有利于得到较完整的边缘。
LOG     = edge(I, 'log');

% % 分窗口显示
% figure,imshow(Roberts);
% figure,imshow(Sobel);
% figure,imshow(Prewitt); 
% figure,imshow(LOG); 
% figure,imshow(Canny); 

% 合并显示
subplot(2, 3, 1); imshow(I),title('原始图像');
subplot(2, 3, 2); imshow(Roberts),title('roberts');
subplot(2, 3, 3); imshow(Sobel),title('sobel');
subplot(2, 3, 4); imshow(Prewitt),title('prewitt');
subplot(2, 3, 5); imshow(LOG),title('Canny');
subplot(2, 3, 6); imshow(Canny),title('log');